export {};

/*
 需求： 封装一个函数，交换数组两项的位置（可能是 number/string/boolean 等）
 [10, "str"] ==> ["str", 10]

 泛型是支持多个参数传递，整体其实跟 JS 函数封装一样

 建议：
 不要直接写泛型的函数，正常步骤
 1. 正常书写 JS 功能代码
 2. 针对需求，添加泛型
*/

const fn = <T, K>(arr: [T, K]): [K, T] => {
  console.log([arr[1], arr[0]]);
  return [arr[1], arr[0]];
};
fn([10, "str"]);
